package com.ruoyi.common.utils.img;

import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import com.ruoyi.common.config.RuoYiConfig;

/**
 * 二维码生成
 * @author 加内特
 *
 */
public class QrCode {
    /**
     * 默认上传的地址
     */
    private static final String
            JPG = "jpg",
            defaultBaseDir = RuoYiConfig.getProfile() + "/cert/%s-code." + JPG;

    private static final int $300 = 300 , BLACK = 0xFF000000 ,  WHITE = 0xFFFFFFFF;

    /**
     * 生成二维码
     * @param content 扫描内容
     */
    public static String generateCode(String content,String nickName) {
        String fileName = String.format(defaultBaseDir,nickName);
        QrConfig config = new QrConfig($300, $300);
        // 设置前景色，既二维码颜色（黑色）
        config.setForeColor(BLACK);
        // 设置背景色（白色）
        config.setBackColor(WHITE);
        QrCodeUtil.generate(content, config,FileUtil.file(fileName));
        return fileName;
    }

    /**
     * 生成二维码
     * @param content 扫描内容
     */
    public static String generateCodeBase(String content,String nickName) {
        QrConfig config = new QrConfig($300, $300);
        // 设置前景色，既二维码颜色（黑色）
        config.setForeColor(BLACK);
        // 设置背景色（白色）
        config.setBackColor(WHITE);
        return QrCodeUtil.generateAsBase64(content, config,JPG);
    }
}